#include <bits/stdc++.h>
std::vector<std::vector<int32_t>> minimunEditDistance(std::string &S,
                                                      std::string &T) {
  std::vector<std::vector<int32_t>> dp;

  // 初始化
  for (int i = 0; i < S.size(); i++) {
    dp.at(i).at(0) = i;
  }
  for (int j = 0; j < T.size(); j++) {
    dp.at(0).at(j) = j;
  }

  for (int i = 1; i <= S.size(); i++) {
    for (int j = 1; j <= T.size(); j++) {
      int deleted = dp[i - 1][j] + 1;
      int insert = dp[i][j - 1] + 1;
      int replace = dp[i - 1][j - 1];  //默认情况下不替换

      if (S[i - 1] != T[i - 1]) {
        replace = dp[i - 1][j - 1] + 1;
        // replace++;
      }
      dp[i][j] = std::min(std::min(deleted, insert), replace);
    }
  }
  return dp;
}
int main() {
  int n;
  std::cin >> n;

  return 0;
}